//
//  TJBaseTableViewController.swift
//  TJSinaWeibo
//
//  Created by 唐后能 on 16/4/8.
//  Copyright © 2016年 itheima. All rights reserved.
//

import UIKit

class TJBaseTableViewController: UITableViewController {

    // 登录状态属性,用来决定控制器view的显示.
    var loginStatus:Bool = TJAccountViewModel.shareUserAccount.isUserAccountLogin
    
    // MARK: - 重写loadView方法,实现对控制器View的自定义.
    override func loadView() {
        loginStatus ? super.loadView() : setVisitorView()
    }
    
//    // MARK: - 访客视图代理方法.
//    // 访客注册按钮点击事件.
//    func registBtnClicked() {
//        
//        print("访客视图注册按钮被点击了")
//    }
//    // 访客登录按钮点击事件.
//    func loginBtnClicked() {
//        
//        print("访客视图登录按钮被点击了")
//    }
    // MARK: - 导航栏按钮点击事件.
    //    @objc private func registBtnClicked() {
    //
    //        print("点击了导航栏注册按钮.")
    //    }
    //
    //    @objc private func loginBtnClicked() {
    //
    //        print("点击了导航栏登录按钮.")
    //    }
    
    // MARK: - 私有方法.
    // 创建访客视图-->未登录状态显示.
    private func setVisitorView(){
        
        // 1,初始化访客视图
        view = visitorView
        // 设置代理.
        visitorView.delegate = self
        
        // 2,根据子控制器不同类型,设置访客视图的其它额外信息.
        if self is TJHomeTableViewController {
            visitorView.startRotate()
        } else if self is TJMessageTableViewController {
            visitorView.setAdditionalInfo("visitordiscover_image_message", message: "登录后，别人评论你的微博，发给你的消息，都会在这里收到通知")
        } else if self is TJDiscoverTableViewController {
            visitorView.setAdditionalInfo("visitordiscover_image_message", message: "登录后，最新、最热微博尽在掌握，不再会与实事潮流擦肩而过")
        } else if self is TJProfileTableViewController {
            visitorView.setAdditionalInfo("visitordiscover_image_profile", message: "登录后，你的微博、相册、个人资料会显示在这里，展示给别人")
        }
        
        // 3,设置导航栏两侧按钮.
        self.navigationItem.leftBarButtonItem = UIBarButtonItem(title: "注册", style: UIBarButtonItemStyle.Plain, target: self, action: Selector("registBtnClicked"))
        self.navigationItem.rightBarButtonItem = UIBarButtonItem(title: "登录", style: UIBarButtonItemStyle.Plain, target: self, action: Selector("loginBtnClicked"))
    }
    

    
    // MARK: - 懒加载
    // 懒加载访客视图.
    private lazy var visitorView:TJVistorView = TJVistorView()
}

// 将visitor中的注册/登录按钮 和 导航栏的都用同一个方法.
extension TJBaseTableViewController : TJVistorViewDelegate {

    func registBtnClicked() {
        print("点击了注册按钮.")
    }
    func loginBtnClicked() {

        // 跳转到授权控制器.
        let oauthVC = TJOauthViewController()
        presentViewController(UINavigationController(rootViewController: oauthVC), animated: true, completion: nil)
    }

}
